package com.ntd.study.protocol.http;

/**
 * http 协议 - 应用层协议，在传输层使用TCP，在网络层使用IP协议
 *
 * HTTP1.0 - 无状态、无连接
 * HTTP1.1 - 持久连接、请求管道化、增加缓存处理、增加host字段、支持断点传输等
 * HTTP2.0 - 二进制分帧、多路复用（或连接共享）、首部压缩、服务器推送
 *
 * 流程：
 * 查缓存 - DNS解析 - 获取ip - 建立tcp连接 - 发http数据 - 接受http数据并分析 - 关闭连接
 *
 * 关键概念
 * 1. 连接 - Connection
 * 2. 消息 - Message
 * 3. 请求 - Request
 * 4. 响应 - Response
 * 5. 资源 - Resource
 * 6. 实体 - Entity
 * 7. 客户端 - Client
 * 8. 用户代理 - User agent
 * 9. 服务器 - Server
 * 10. 源服务器 - Origin server
 * 11. 代理 - Proxy
 * 12. 网关 - Gateway
 * 13. 通道 - Tunnel
 * 14. 缓存 - Cache
 *
 * http报文结构 - 请求报文
 * 1. 请求方法、URI、HTTP协议版本 - 该部分给出了请求类型和请求的资源位置
 * |-- 请求类型：GET、POST、HEAD、PUT、DELETE
 * 2. 请求头部
 * 该部分紧跟着上一部分，该部分主要是用于描述请求正文，主要是用于说明请求源、连接类型、以及一些Cookie信息等
 * 3. 请求正文
 * 一般用于存放POST请求类型的请求正文
 *
 * http报文结构 - 响应报文
 * 1. 状态码 - 该部分主要给出响应http协议版本号、响应返回状态码、相应描述、同样是单行显示。格式为HTTP/1.1 200 OK
 * 常见的响应有： 200（响应成功）、400（请求异常）、404（请求资源不存在）、405（请求方式不支持）、500（服务器内部异常）
 * 2. 响应头部 - 响应头部主要返回一些服务器的基本信息、以及一些Cookie值等
 * 3. 响应内容 - 该部分为请求需要得到的具体数据，可以为任何类型数据，一般网页浏览返回的为html文件内容
 *
 * HTTP 幂等方法 - 无论调用这个url多少，返回结果都相同（前提是服务器端的数据没有表内认为手动更改）
 * HTTP GET方法 - 用于获取资源，幂等方法
 * HTTP POST方法 -
 *
 *
 *
 *
 *
 *
 *
 */
public class StudyHttp {
}
